﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Internet_Deliver_Therapy.Models
{
    public class Users
    {
        private string nric, firstName, lastName, race, email, password, accountType, psychiatrist, psychologist, designation, notifyVia,
            mobileNo, homeNo, officeNo;
        private char gender, status, newsletter, profilePictureExist;
        private DateTime dob, lastlogin, employmentDate;

        //All fields
        public Users(string nric, string firstName, string lastName, string race, string email, string password,
            string accountType, string psychiatrist, string psychologist, string designation, string notifyVia, 
            string mobileNo, string homeNo, string officeNo, char gender, char status, 
            char newsletter, char profilePictureExist, DateTime dob, DateTime lastlogin, DateTime employmentDate)
        {
            this.nric = nric;
            this.firstName = firstName;
            this.lastName = lastName;
            this.race = race;
            this.email = email;
            this.password = password;
            this.accountType = accountType;
            this.psychiatrist = psychiatrist;
            this.psychologist = psychologist;
            this.designation = designation;
            this.notifyVia = notifyVia;
            this.mobileNo = mobileNo;
            this.homeNo = homeNo;
            this.officeNo = officeNo;
            this.gender = gender;
            this.status = status;
            this.newsletter = newsletter;
            this.profilePictureExist = profilePictureExist;
            this.dob = dob;
            this.lastlogin = lastlogin;
            this.employmentDate = employmentDate;
        }

        //Patient
        public Users(string nric, string firstName, string lastName, string race, string email, string password, string psychiatrist, 
            string notifyVia, string mobileNo, string homeNo, char gender, char newsletter, DateTime dob)
        {
            this.nric = nric;
            this.firstName = firstName;
            this.lastName = lastName;
            this.race = race;
            this.email = email;
            this.password = password;
            this.accountType = "Patient";
            this.psychiatrist = psychiatrist;
            this.notifyVia = notifyVia;
            this.mobileNo = mobileNo;
            this.homeNo = homeNo;
            this.gender = gender;
            this.status = 'T';
            this.newsletter = newsletter;
            this.profilePictureExist = 'F';
            this.dob = dob;
        }

        //Psychologist & Psychiatrist
        public Users(string nric, string firstName, string lastName, string race, string email, string accountType,
            string designation, string mobileNo, string officeNo, char gender, DateTime dob, DateTime employmentDate)
        {
            this.nric = nric;
            this.firstName = firstName;
            this.lastName = lastName;
            this.race = race;
            this.email = email;
            this.accountType = accountType;
            this.designation = designation;
            this.notifyVia = "Application";
            this.mobileNo = mobileNo;
            this.officeNo = officeNo;
            this.gender = gender;
            this.status = 'T';
            this.newsletter = 'F';
            this.profilePictureExist = 'T';
            this.dob = dob;
            this.employmentDate = employmentDate;
        }

        //All fields without password
        public Users(string nric, string firstName, string lastName, string race, string email,
            string accountType, string psychiatrist, string psychologist, string designation, string notifyVia,
            string mobileNo, string homeNo, string officeNo, char gender, char status,
            char newsletter, char profilePictureExist, DateTime dob, DateTime lastlogin, DateTime employmentDate)
        {
            this.nric = nric;
            this.firstName = firstName;
            this.lastName = lastName;
            this.race = race;
            this.email = email;
            this.accountType = accountType;
            this.psychiatrist = psychiatrist;
            this.psychologist = psychologist;
            this.designation = designation;
            this.notifyVia = notifyVia;
            this.mobileNo = mobileNo;
            this.homeNo = homeNo;
            this.officeNo = officeNo;
            this.gender = gender;
            this.status = status;
            this.newsletter = newsletter;
            this.profilePictureExist = profilePictureExist;
            this.dob = dob;
            this.lastlogin = lastlogin;
            this.employmentDate = employmentDate;
        }

        public string Nric
        {
            get { return nric; }
            set { nric = value; }
        }

        public string FirstName
        {
            get { return firstName; }
            set { firstName = value; }
        }

        public string LastName
        {
            get { return lastName; }
            set { lastName = value; }
        }
        
        public string Race
        {
            get { return race; }
            set { race = value; }
        }

        public string Email
        {
            get { return email; }
            set { email = value; }
        }

        public string Password
        {
            get { return password; }
            set { password = value; }
        }

        public string AccountType
        {
            get { return accountType; }
            set { accountType = value; }
        }

        //Not required, only for Patient
        public string Psychiatrist
        {
            get { return psychiatrist; }
            set { psychiatrist = value; }
        }

        //Not required, only for Patient
        public string Psychologist
        {
            get { return psychologist; }
            set { psychologist = value; }
        }

        public string Designation
        {
            get { return designation; }
            set { designation = value; }
        }

        public string NotifyVia
        {
            get { return notifyVia; }
            set { notifyVia = value; }
        }

        public string MobileNo
        {
            get { return mobileNo; }
            set { mobileNo = value; }
        }

        //Not required
        public string HomeNo
        {
            get { return homeNo; }
            set { homeNo = value; }
        }

        public string OfficeNo
        {
            get { return officeNo; }
            set { officeNo = value; }
        }

        public char Gender
        {
            get { return gender; }
            set { gender = value; }
        }
        public char Status
        {
            get { return status; }
            set { status = value; }
        }
        
        public char Newsletter
        {
            get { return newsletter; }
            set { newsletter = value; }
        }

        public char ProfilePictureExist
        {
            get { return profilePictureExist; }
            set { profilePictureExist = value; }
        }

        public DateTime Dob
        {
            get { return dob; }
            set { dob = value; }
        }

        public DateTime Lastlogin
        {
            get { return lastlogin; }
            set { lastlogin = value; }
        }

        public DateTime EmploymentDate
        {
            get { return employmentDate; }
            set { employmentDate = value; }
        }
    }
}